package br.edu.ifrn.controller;

import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import br.edu.ifrn.dao.TipoDocumentoDAO;
import br.edu.ifrn.exeption.TipoDocumentoException;
import br.edu.ifrn.model.TipoDocumento;


@Stateless
@LocalBean
public class TipoDocumentoEJB implements TipoDocumentoEJBLocal {

	@PersistenceContext(name="sigadocDB")
	private EntityManager em;
    
    public TipoDocumentoEJB() {
    }
    
	@Override
	public List<TipoDocumento> listar() {
		TipoDocumentoDAO tipoDocumentoDAO = new TipoDocumentoDAO(em);
		return tipoDocumentoDAO.listar();
	}
	@Override
	public void salvar(TipoDocumento tipoDocumento) {
		TipoDocumentoDAO tipoDocumentoDAO = new TipoDocumentoDAO(em);
		tipoDocumentoDAO.salvar(tipoDocumento);
	}
	@Override
	public void remover(TipoDocumento tipoDocumento)
			throws TipoDocumentoException {
		TipoDocumentoDAO tipoDocumentoDAO = new TipoDocumentoDAO(em);
		if(tipoDocumentoDAO.isAssociado(tipoDocumento.getId()))
			throw new TipoDocumentoException("Existem documento(s) associado(s) a este tipo");
		else
			tipoDocumentoDAO.remover(tipoDocumento);
	}
	@Override
	public TipoDocumento find(Long id) {
		TipoDocumentoDAO tipoDocumentoDAO = new TipoDocumentoDAO(em);
		return tipoDocumentoDAO.find(id);
	}

}
